Telegram Group & Telegram Channel
ООП (неочевидные плюсы)

По следам последнего видео. У ООПшных языков, есть одна киллер фича и одно удобство, которые редко встречаются в других местах. Сейчас будет шок 🙂

Если у вас структура вызова сущность.метод, вы получаете автокомплит. Если у вас вызов функция(данные), то хрен вам, а не автокомплит. Как вам такое? Является ли это фишкой ооп? Вообще-то нет, да так совпало что в ооп это повсеместно, но это всего лишь вопрос синтаксиса языка. Зацените пример на go:


type User struct {
Name string
}

func (u *User) Greet() {
fmt.Println("Hello,", u.Name)
}

func main() {
user := &User{Name: "Kirill"}
user.Greet() // автокомплит: .Greet
}


И на nim


type User = object
name: string

proc greet(u: User) {.method.} =
echo "Hello, ", u.name

let user = User(name: "Kirill")
user.greet() # автокомплит есть


и rust через трейты:


struct User {
name: String,
}

// trait описан отдельно от User
trait Greet {
fn greet(&self);
}

impl Greet for User {
fn greet(&self) {
println!("Hello, {}", self.name);
}
}

fn main() {
let user = User { name: "Kirill".to_string() };
user.greet(); // автокомплит срабатывает!
}


Ну и аналог (хотя и через классы) это экстеншены в Swift, Kotlin и C#

Кстати это довольно интересно, многие ассоцириуют синтаксис сущность.метод() только с ООП, но как вы видите, это вообще не так.

p.s. А как вы думаете, какая вторая деталь, про которую я упомянул в начале поста ? 🙂

Ссылки: Телеграм | Youtube | VK



tg-me.com/orgprog/329
Create:
Last Update:

ООП (неочевидные плюсы)

По следам последнего видео. У ООПшных языков, есть одна киллер фича и одно удобство, которые редко встречаются в других местах. Сейчас будет шок 🙂

Если у вас структура вызова сущность.метод, вы получаете автокомплит. Если у вас вызов функция(данные), то хрен вам, а не автокомплит. Как вам такое? Является ли это фишкой ооп? Вообще-то нет, да так совпало что в ооп это повсеместно, но это всего лишь вопрос синтаксиса языка. Зацените пример на go:


type User struct {
Name string
}

func (u *User) Greet() {
fmt.Println("Hello,", u.Name)
}

func main() {
user := &User{Name: "Kirill"}
user.Greet() // автокомплит: .Greet
}


И на nim


type User = object
name: string

proc greet(u: User) {.method.} =
echo "Hello, ", u.name

let user = User(name: "Kirill")
user.greet() # автокомплит есть


и rust через трейты:


struct User {
name: String,
}

// trait описан отдельно от User
trait Greet {
fn greet(&self);
}

impl Greet for User {
fn greet(&self) {
println!("Hello, {}", self.name);
}
}

fn main() {
let user = User { name: "Kirill".to_string() };
user.greet(); // автокомплит срабатывает!
}


Ну и аналог (хотя и через классы) это экстеншены в Swift, Kotlin и C#

Кстати это довольно интересно, многие ассоцириуют синтаксис сущность.метод() только с ООП, но как вы видите, это вообще не так.

p.s. А как вы думаете, какая вторая деталь, про которую я упомянул в начале поста ? 🙂

Ссылки: Телеграм | Youtube | VK

BY Организованное программирование | Кирилл Мокевнин




Share with your friend now:
tg-me.com/orgprog/329

View MORE
Open in Telegram


Организованное программирование | Кирилл Мокевнин Telegram | DID YOU KNOW?

Date: |

How Does Telegram Make Money?

Telegram is a free app and runs on donations. According to a blog on the telegram: We believe in fast and secure messaging that is also 100% free. Pavel Durov, who shares our vision, supplied Telegram with a generous donation, so we have quite enough money for the time being. If Telegram runs out, we will introduce non-essential paid options to support the infrastructure and finance developer salaries. But making profits will never be an end-goal for Telegram.

A project of our size needs at least a few hundred million dollars per year to keep going,” Mr. Durov wrote in his public channel on Telegram late last year. “While doing that, we will remain independent and stay true to our values, redefining how a tech company should operate.

Организованное программирование | Кирилл Мокевнин from jp


Telegram Организованное программирование | Кирилл Мокевнин
FROM USA